perm filename CORMON[SS,SYS]4 blob
sn#786532 filedate 1985-02-28 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 PHYMEM NNXMP NMAPP A B C D E M N T TT TTT W X Y Z P RECOMP GO CORTB1 DECOUT DECOU0 DECOU1 OCTOUT OCTOU1 SYMGET SYMGT1 SYMNAM NSYMS SYMADR AFSBUSY ASYSTOP AFSTOP ACORMAX NSYPGS ACORTAB FSBUSY SYSTOP FSTOP CORMAX CORTAB PDL FREE SYS USER NXM FS IO MAP P2M
C00010 ENDMK
C⊗;
;PHYMEM NNXMP NMAPP A B C D E M N T TT TTT W X Y Z P RECOMP GO CORTB1 DECOUT DECOU0 DECOU1 OCTOUT OCTOU1 SYMGET SYMGT1 SYMNAM NSYMS SYMADR AFSBUSY ASYSTOP AFSTOP ACORMAX NSYPGS ACORTAB FSBUSY SYSTOP FSTOP CORMAX CORTAB PDL FREE SYS USER NXM FS IO MAP P2M
TITLE CORMON
;CORTAB ENTRY VALUES
; 0 Block is available.
; 1-7777 Block is in use by the job named in this code
↑SYSCUS←←4001 ;Block is occupied bt the system
↑NXMCUS←←4003 ;Block does not exist (NXM)
↑FSCUS←← 4005 ;Block is in use by system as free storage.
↑IOBCUS←←4007 ;Block is in use as an I/O buffer (SYSBUF for example)
↑PGTCUS←←4010 ;Block is in use as a page table (not as free storage)
↑P2MCUS←←4011 ;Block is part of P2 memory
PHYMEM←←11000 ;TOTAL NUMBER OF PHYSICAL PAGES IN SYSTEM
NNXMP←←0 ;TOTAL NUMBER OF NXM PAGES IN SYSTEM (in middle)
JOBN←←=80 ;Max number of jobs
NMAPP←←JOBN-1 ;TOTAL NUMBER OF MAP PAGES IN SYSTEM
A←1
B←2
C←3
D←4
E←5
M←6
N←7
T←10
TT←11
TTT←12
W←13
X←14
Y←15
Z←16
P←17
RECOMP: OUTSTR [ASCIZ/JOBN has changed. Fix it in CORMON's source and recompile./]
EXIT
GO: RESET
MOVE P,[-100,,PDL-1]
MOVSI A,377777
SETPR2 A,
JRST 4,.
MOVE A,400222 ;Get JOBN-1 from system lowcore
CAIE A,JOBN-1 ;Better be what we expect
JRST RECOMP ;Must alter and recompile
PUSHJ P,SYMGET
MOVE A,@AFSBUSY
MOVEM A,FSBUSY
MOVE A,@ASYSTOP
MOVEM A,SYSTOP
MOVE A,@AFSTOP
MOVEM A,FSTOP
MOVE A,@ACORMAX
MOVEM A,CORMAX
MOVS A,ACORTAB
HRRI A,CORTAB
BLT A,CORTAB+PHYMEM-1 ;COPY CORTAB TABLE
OUTSTR [ASCIZ / SYSTOP = /]
MOVE T,SYSTOP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
FSTOP = /]
MOVE T,FSTOP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Low FSBUSY = /]
MOVE T,FSBUSY
PUSHJ P,DECOUT
OUTSTR [ASCIZ/
Low FS free = /]
MOVE T,FSTOP
SUB T,SYSTOP
SUB T,FSBUSY
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
FSTOP-SYSTOP (Low FS total) = /]
MOVE T,FSTOP
SUB T,SYSTOP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Number of SYSBUF pages = /]
MOVE T,NSYPGS
PUSHJ P,DECOUT
SETZM FREE
SETZM SYS
SETZM USER
SETZM NXM
SETZM FS
SETZM IO
SETZM MAP
SETZM P2M
MOVSI T,-PHYMEM
CORTB1: LDB A,[POINT 12,CORTAB(T),29]
SKIPN A
AOS FREE
CAIN A,SYSCUS
AOS SYS
CAILE A,0
CAIL A,JOBN
CAIA
AOS USER
CAIN A,NXMCUS
AOS NXM
CAIN A,FSCUS
AOS FS
CAIN A,IOBCUS
AOS IO
CAIN A,PGTCUS
AOS MAP
CAIN A,P2MCUS
AOS P2M
AOBJN T,CORTB1
OUTSTR [ASCIZ /
System pages = /]
MOVE T,SYS
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
FS pages = /]
MOVE T,FS
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
NXM pages = /]
MOVE T,NXM
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
MAP pages = /]
MOVE T,MAP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
IO buffer pages = /]
MOVE T,IO
PUSHJ P,DECOUT
OUTSTR [ASCIZ/
P2 memory pages = /]
MOVE T,P2M
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Free pages = /]
MOVE T,FREE
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
User pages = /]
MOVE T,USER
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Total pages = /]
MOVE T,FREE
ADD T,P2M
ADD T,SYS
ADD T,MAP
ADD T,FS
ADD T,NXM
ADD T,IO
ADD T,USER
PUSH P,T
PUSHJ P,DECOUT
POP P,T
OUTSTR [ASCIZ / = /]
LSH T,9
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Available user core should be = /]
MOVEI T,PHYMEM ;TOTAL NUMBER OF PAGES IN SYSTEM
MOVE TT,SYSTOP
LSH TT,-9
SUB T,TT ;SUBTRACT SYSTEM PAGES
SUB T,NSYPGS ;SUBTRACT SYSBUF PAGES
SUBI T,NNXMP+NMAPP ;SUBTRACT OUT NXM PAGES AND PAGE MAP PAGES
SUB T,P2M ;SUBTRACT P2 CORE
SUB T,FS ;SUBTRACT LOW AND HI FS
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
CORMAX = /]
MOVE T,CORMAX
LSH T,-9
PUSHJ P,DECOUT
OUTSTR [BYTE (7)15,12]
EXIT
DECOUT: PUSH P,T
PUSHJ P,DECOU0
OUTSTR [ASCIZ /. (/]
POP P,T
PUSHJ P,OCTOUT
OUTCHR [")"]
POPJ P,
DECOU0: IDIVI T,=10
JUMPE T,DECOU1
HRLM TT,(P)
PUSHJ P,DECOU0
HLRZ TT,(P)
DECOU1: ADDI TT,"0"
OUTCHR TT
POPJ P,
OCTOUT: IDIVI T,10
JUMPE T,OCTOU1
HRLM TT,(P)
PUSHJ P,OCTOUT
HLRZ TT,(P)
OCTOU1: ADDI TT,"0"
OUTCHR TT
POPJ P,
SYMGET: MOVSI T,-NSYMS
SYMGT1: MOVE B,SYMNAM(T)
TLZ B,740000
MOVEI C,0
MOVEI A,B
.SYML A,
JRST 4,.
MOVE B,SYMNAM(T)
TLNN B,40000
ADDI A,400000
MOVEM A,SYMADR(T)
AOBJN T,SYMGT1
POPJ P,
SYMNAM: RADIX50 0,FSBUSY
RADIX50 0,SYSTOP
RADIX50 0,FSTOP
RADIX50 0,CORMAX
RADIX50 4,NSYPGS
RADIX50 0,CORTAB
NSYMS←←.-SYMNAM
SYMADR::
AFSBUSY:0
ASYSTOP:0
AFSTOP: 0
ACORMAX:0
NSYPGS: 0
ACORTAB:0
FSBUSY: 0
SYSTOP: 0
FSTOP: 0
CORMAX: 0
CORTAB: BLOCK PHYMEM
PDL: BLOCK 100
FREE: 0
SYS: 0
USER: 0
NXM: 0
FS: 0
IO: 0
MAP: 0
P2M: 0
END GO